package com.bestarnold.www;


/**
 * CustomFunctionalInterface 自定义函数式接口
 *
 * @author Arnold 409196007@qq.com
 * @version V2.0
 * @date 2022/06/14 12:12
 **/
@FunctionalInterface
public interface CustomFunctionalInterface<T> {
    /**
     * description 抽象方法
     *
     * @param t 泛型对象
     * @return void
     * @author Arnold
     * @date 2022/6/14
     **/
    void println(T t);

    /**
     * description 静态方法打印
     *
     * @param str 待打印字符串
     * @return void
     * @author Arnold
     * @date 2022/6/14
     **/
    static void print(String str) {
        System.out.print(str);
    }

    /**
     * description 默认方法按照给定次数打印
     *
     * @param str   打印字符串
     * @param times 打印次数
     * @return void
     * @author Arnold
     * @date 2022/6/14
     **/
    default void printForTimes(String str, Integer times) {
        for (int i = 0; i < times; i++) {
            System.out.println(str);
        }
    }

    /**
     * description java.lang.Object中的public方法
     *
     * @param obj 比对对象
     * @return boolean
     * @author Arnold
     * @date 2022/6/14
     **/
    boolean equals(Object obj);

}
